Majority Game with Self Consistency

created with NetLogo

view/download model file: 2D MG Consistency.nlogo

WHAT IS IT?
-----------
The current model extends the 2D Majority Game with Features and Values by incorporating a check for self-consistency among the features of the agents. The agents still live in a 2D world with a toriodal topology (so there are still no 'edge effects'). As before, the user can give each agent between one and six features and each feature can have between 2 and 8 values. In each step, agents either change their state based upon the majority (or plurality) of their neighbors' states, or change a value of one of their own features to make it more consistent with the other values. Agents that are using the self-consistancy check are located on white patches.

There are now up to 48 different types of agents (6 features times 8 values each). Features represent different "characteristics" (or "attributes" or "dimensions" or "properties") of an agent. Think of the number of features as the number of possible properties agents can keep track of. Features are like variables that just hold values. The number of values (called "traits" by Axelrod or sometimes "alleles" in the literature) represents the possible variety that a feature may exhibit.

Each agent is divided into six different blocks. The color of each block represents the value. The higher the value, the darker the color; each feature uses a different hue (shades or red vs shades of blue etc). In this model, plurality means the mode of the colors of the agents' neighbors. Majority means that more than the specified percentage of an agent's neighbors must be the same color to cause the agent to change. Each feature is evaluated independently.

HOW TO USE IT
-------------
Clicking SETUP fills the world with agents (one per patch) each with the number of features you specified and each feature has a randomly chosen value from a uniform distribution of values (from 2 to the number you specify).

Clicking GO makes the turtles look at their neighbors and decide what to set their values to. All the agents look and change simultaneously, that is, the model employs synchronous updating. Clicking STEP runs GO just once.

The RADIUS slider allows the user to set how far away the agents will look to collect information about other users' states. In two dimensions, radius is a bit tricky. The radius includes all cells that can be reached from the home cell by moving vertically, horizontally, or diagonally for up to that many spaces. For example, if you set RADIUS to 1, each agent will look out to the eight cells surrounding it (plus the cell that itself is on). If you set RADIUS to 3, then it will include all spaces that can be reached in 3 "steps"; left 3, up 3, north-east 3, 2 to the right and one NE, etc. For more info about radius, see "Neighborhoods Example" in the Code Examples folder.

The USE-PLURALITY toggle switch allows the user to specifiy whether the decision rule is a "majority" rule or a "plurality" rule. If the USE-PLURALITY switch is on then each agent will convert its value to whichever value is most prominent among its neighbors (what about ties?). This is true even if, for example, there are two of one color and one of six other colors.

If USE-PLURALITY is off, then the decision is based upon majority rule. The PERCENT-NEEDED slider determines the quorum, i.e. how many neighbors with a particular value are necessary to make an agent change its value. At the lowest level (50%) the models runs a strict majority and at the maximum level (99%) unanimity is required.

The NUMBER_NEEDED monitor box lets the user know how many agents of a single value are required to convert each agent, given the provided RADIUS and PERCENT-NEEDED. Note that the actual number must be strictly greater than the number in this box (can you look at the code and answer why?).

FEATURES is used to select the number of features between 1 and 6.

VALUES lets you select the values range for each feature between 2 and 8.

The new PROB-SELF-CHECK sets the probability for each agent that it will check itself for sonsistency on that turn instead of using the majority (or plurality) behavior rule. At 100% all they do is check each other; and at 0% this model reduces to the previous one.

THINGS TO NOTICE
----------------
With a RADIUS of one, run the model with PROB-SELF-CHECK at 10% for a few steps. Now reset the model and set PROB-SELF-CHECK to 90%. Do the same for a RADIUS of two. Notice that self-checking is much faster than other-checking.

Islands still exists where it seems there should be none. This is due to the way that ties are resolved. If two groups of neighbors have equal, largest shares of an agent's neighborhood, then the agent simply doesn't change. This is clearly a bad tie-breaking rule.

QUESTIONS
---------
1) We have two different mechanisms: one makes neighbors have the same values for the individual features, but independently; and the other makes the values for an agent's features become the same. What do you think the long-term behavior of these two homogenizing mechanisms will be? How will the long-term behavior change as PROB-SELF-CHECK changes? Does the world-size have any effect?

THINGS TO TRY
-------------
This model has a rather high degree of complexity. Because there are two forces working on the values of agents' features, changing any of the model's parameters could result in difficult-to-predict behavior. So just play around and try a bunch of different things. Try and see if you can get persistently novel, chaotic, periodic, and equilibrium behavior.

CREDITS AND REFERENCES
----------------------
To refer to this model please use: Bramson, Aaron and Scott Page (2005). NetLogo 2D MG Consistency model. "http://bramson.net/academ/scottsnetlogo/2D MG Consistency.html". Center for the Study of Complex Systems, University of Michigan, Ann Arbor, MI.